Originally posted at http://www.atariage.com/forums/index.php?showtopic=3214&hl=disassembly by Thomas J. It is possible, but requires some extra work. First you have to split your binary into pieces of 4K. (I'm using Windows Commander, but there are lots of other tools that can do so too) Then you should try to disassemble the first 4K file. There will be large blocks of data, because those blocks are only accessed via the other bank(s) and DiStella fails recognizing them as code. You'll need a configuration file (see DiStella.txt). Start with: ORG F000 CODE F000 FFF9 In the resulting file, look at the adresses (e.g. JMP, JSR) and you should be able to recognize the real ORG address. Update! Try to locate blocks, that look not like code (e.g. containing JAM, BRK or illegal opcodes) and adjust the configuration file. As long as there are unknown labels (e.g. Lf123 = $f123) at the start of the output file, there is something wrong. You have to iterate [img]images/smiles/icon_smile.gif[/img] Repeat with the other 4K files. When you are finished doing all that, replace all ORG with RORG and add before new ORGs which must increase in $1000 steps (e.g. $1000, $2000,...). Remove everything before ORG. Now you should copy all files together and add the following lines at the begin of the file: processor 6502 include vcs.h This should compile and you should compare the result with the original. There will be most likely some differences: - different values for TIA registers (e.g. CXCLR.. at $00.. or at $30..), they don't matter, but for perfection you might want to correct them too. - incorrect word access to zeropage registers (eg. sta $0000 will be compiled as sta $00). This causes the complete code to get out of sync (starting at that point) with the original and you have to fix this (e.g. sta.w $00). Repeat! That's all!